﻿namespace TestTool.Proxies.Onvif
{
    using System;
    using System.CodeDom.Compiler;
    using System.ComponentModel;
    using System.Diagnostics;
    using System.Xml;
    using System.Xml.Serialization;

    [Serializable, DebuggerStepThrough, XmlType(Namespace="http://www.onvif.org/ver10/schema"), DesignerCategory("code"), GeneratedCode("svcutil", "3.0.4506.2152")]
    public class FocusConfiguration20
    {
        private XmlAttribute[] anyAttrField;
        private TestTool.Proxies.Onvif.AutoFocusMode autoFocusModeField;
        private float defaultSpeedField;
        private bool defaultSpeedFieldSpecified;
        private FocusConfiguration20Extension extensionField;
        private float farLimitField;
        private bool farLimitFieldSpecified;
        private float nearLimitField;
        private bool nearLimitFieldSpecified;

        [XmlAnyAttribute]
        public XmlAttribute[] AnyAttr
        {
            get
            {
                return this.anyAttrField;
            }
            set
            {
                this.anyAttrField = value;
            }
        }

        [XmlElement(Order=0)]
        public TestTool.Proxies.Onvif.AutoFocusMode AutoFocusMode
        {
            get
            {
                return this.autoFocusModeField;
            }
            set
            {
                this.autoFocusModeField = value;
            }
        }

        [XmlElement(Order=1)]
        public float DefaultSpeed
        {
            get
            {
                return this.defaultSpeedField;
            }
            set
            {
                this.defaultSpeedField = value;
            }
        }

        [XmlIgnore]
        public bool DefaultSpeedSpecified
        {
            get
            {
                return this.defaultSpeedFieldSpecified;
            }
            set
            {
                this.defaultSpeedFieldSpecified = value;
            }
        }

        [XmlElement(Order=4)]
        public FocusConfiguration20Extension Extension
        {
            get
            {
                return this.extensionField;
            }
            set
            {
                this.extensionField = value;
            }
        }

        [XmlElement(Order=3)]
        public float FarLimit
        {
            get
            {
                return this.farLimitField;
            }
            set
            {
                this.farLimitField = value;
            }
        }

        [XmlIgnore]
        public bool FarLimitSpecified
        {
            get
            {
                return this.farLimitFieldSpecified;
            }
            set
            {
                this.farLimitFieldSpecified = value;
            }
        }

        [XmlElement(Order=2)]
        public float NearLimit
        {
            get
            {
                return this.nearLimitField;
            }
            set
            {
                this.nearLimitField = value;
            }
        }

        [XmlIgnore]
        public bool NearLimitSpecified
        {
            get
            {
                return this.nearLimitFieldSpecified;
            }
            set
            {
                this.nearLimitFieldSpecified = value;
            }
        }
    }
}

